﻿using System.Collections;
using System.Collections.Generic;
using UnityEngine;

//测试用的类，随便干点什么就好，用于测试热更新及相关的工作流程是否会有效
using UnityEngine.UI;


public class GameLogic : MonoBehaviour {
	public static void Begin(){
		//游戏开始
		GameObject obj = new GameObject("GameLogic");
		obj.AddComponent<GameLogic> ();
	}

	// Use this for initialization
	void Start () {
		//从资源中读取字符串，如果这个可以热更，那么配置文件和二进制文件就应该可以正常热更了。
		ResourceManager.Instance.LoadString("Texts/Texts1/Str.txt",str =>{
			Debug.Log("testStr : " + str);
		});
		//从资源中加载一个prefab,如果这个加载正常，说明一般的prefab就没问题了。
		ResourceManager.Instance.LoadGameObject ("Prefabs/Prefabs4/Sprite.prefab", obj => {
			//这里注意手动复制一次，GameObject一般都是复制后使用(类似于Resources.Load之后也要进行复制)
			GameObject.Instantiate(obj);
		});
		//加载一个最普通的GameObject
		ResourceManager.Instance.LoadGameObject ("Prefabs/Prefabs4/Sphere.prefab", obj => {
			GameObject.Instantiate(obj);
		});
		//从资源中加载一个粒子系统
		//这里碰到过shader丢失的情况，在Edit->ProjectSetting->Graphic->Always Inculde Shaders中增加需要用到的shader然后重新打包就好了
		ResourceManager.Instance.LoadGameObject("Prefabs/Prefabs2/Particle System.prefab",obj=>{
			GameObject.Instantiate(obj);
		});
		//从资源加载一个贴图
		GameObject imageObj = new GameObject("Image");
		var image = imageObj.AddComponent<Image> ();
		var canvas = Transform.FindObjectOfType<Canvas> ();
		if (canvas == null) {
			GameObject canvasObj = new GameObject ("Canvas");
			canvas = canvasObj.AddComponent<Canvas> ();
		}
		imageObj.transform.SetParent (canvas.transform);
		ResourceManager.Instance.LoadSprite ("Common/Common1/dial_btn.png", sprite => {
			image.sprite = sprite;
		});
		//懒得测试其它的了，如果需要测试，可以自己测试其它的对象加载是否正常。
	}
	
	// Update is called once per frame
	void Update () {

	}
}
